function Acombineintervalpre(test_ori, test_pre, train_error, E, B)

    disp(' ')
    disp('kde区间预测结果');
    % E = 3.5;
    [kde_lower_bounds85, kde_upper_bounds85] = kdePI(test_ori, test_pre, train_error, E, 0.15);
    [kde_lower_bounds90, kde_upper_bounds90] = kdePI(test_ori, test_pre, train_error, E, 0.10);
    [kde_lower_bounds95, kde_upper_bounds95] = kdePI(test_ori, test_pre, train_error, E, 0.05);
    
    disp(' ')
    disp('bootstrap区间预测结果');
    % B = 10000;     % Bootstrap样本数
    [bootstrap_lower_bounds85, bootstrap_upper_bounds85] = bootstrapPI(test_ori, test_pre, train_error, B, 0.15);
    [bootstrap_lower_bounds90, bootstrap_upper_bounds90] = bootstrapPI(test_ori, test_pre, train_error, B, 0.10);
    [bootstrap_lower_bounds95, bootstrap_upper_bounds95] = bootstrapPI(test_ori, test_pre, train_error, B, 0.05);
    
    bounds85 = [kde_lower_bounds85,kde_upper_bounds85,bootstrap_lower_bounds85,bootstrap_upper_bounds85];
    bounds90 = [kde_lower_bounds90,kde_upper_bounds90,bootstrap_lower_bounds90,bootstrap_upper_bounds90];
    bounds95 = [kde_lower_bounds95,kde_upper_bounds95,bootstrap_lower_bounds95,bootstrap_upper_bounds95];
    
    disp(' ')
    disp('The results of combined interval prediction');
    [combine_lower_bounds85, combine_upper_bounds85, best_wkde85] = AcombinePI(bounds85, test_ori, 0.15);
    fprintf('%d%%The weight of the confidence level in KDE.: %.4f\n', (1-0.15)*100, best_wkde85);
    [combine_lower_bounds90, combine_upper_bounds90, best_wkde90] = AcombinePI(bounds90, test_ori, 0.10);
    fprintf('%d%%The weight of the confidence level in KDE.: %.4f\n', (1-0.10)*100, best_wkde90);
    [combine_lower_bounds95, combine_upper_bounds95, best_wkde95] = AcombinePI(bounds95, test_ori, 0.05);
    fprintf('%d%%The weight of the confidence level in KDE.: %.4f\n', (1-0.05)*100, best_wkde95);

    intervaldata = table(combine_lower_bounds85, combine_upper_bounds85, combine_lower_bounds90, combine_upper_bounds90, combine_lower_bounds95, combine_upper_bounds95, ...
        'VariableNames', {'low85', 'up85', 'low90', 'up90', 'low95', 'up95'});
    writetable(intervaldata, 'result\\intervaldata.csv'); 

    test_ori = test_ori';
    x = 1:size(test_ori, 2);
    N = size(test_ori, 2);
    
    %figure;
    % 用 fill 函数填充上下界之间的区域
    %fill([x, fliplr(x)], [combine_upper_bounds85', fliplr(combine_lower_bounds85')], [220/255, 170/255, 10/255], 'FaceAlpha', 0.6, 'EdgeColor', 'none');
    %hold on;
    %fill([x, fliplr(x)], [combine_upper_bounds90', fliplr(combine_lower_bounds90')], [220/255, 170/255, 10/255], 'FaceAlpha', 0.4, 'EdgeColor', 'none');
    %hold on;
    %fill([x, fliplr(x)], [combine_upper_bounds95', fliplr(combine_lower_bounds95')], [220/255, 170/255, 10/255], 'FaceAlpha', 0.2, 'EdgeColor', 'none');
    %hold on;
    %plot(test_ori, 'lineWidth', 1, 'Color', [55/255, 80/255, 150/255])
    %hold on;
    %plot(test_pre, 'r-','lineWidth', 1)
    %hold on;
    % 添加图例和标签
    %legend('85%置信区间','90%置信区间','95%置信区间','实际值', '预测值');
    %xlabel('预测样本')
    %ylabel('预测结果')
    %string = {'测试集区间预测结果'};
    %title(string)
    %xlim([1, N])
    % 取消保持绘图区，以便之后的绘图不覆盖在当前图上
    %hold off;


    
    test_ori = test_ori(771:910);
    % test_ori = test_ori';
    x = 1:size(test_ori, 2);
    N = size(test_ori, 2);
    combine_upper_bounds85 = combine_upper_bounds85';
    combine_lower_bounds85 = combine_lower_bounds85';
    combine_upper_bounds90 = combine_upper_bounds90';
    combine_lower_bounds90 = combine_lower_bounds90';
    combine_upper_bounds95 = combine_upper_bounds95';
    combine_lower_bounds95 = combine_lower_bounds95';
    
    combine_upper_bounds85 = combine_upper_bounds85(771:910);
    combine_lower_bounds85 = combine_lower_bounds85(771:910);
    combine_upper_bounds90 = combine_upper_bounds90(771:910);
    combine_lower_bounds90 = combine_lower_bounds90(771:910);
    combine_upper_bounds95 = combine_upper_bounds95(771:910);
    combine_lower_bounds95 = combine_lower_bounds95(771:910);
    
    %figure;
    % 用 fill 函数填充上下界之间的区域
    %fill([x, fliplr(x)], [combine_upper_bounds85, fliplr(combine_lower_bounds85)], [255/255, 165/255, 0/255], 'FaceAlpha', 0.8, 'EdgeColor', 'none');
    %hold on;
    %fill([x, fliplr(x)], [combine_upper_bounds90, fliplr(combine_lower_bounds90)], [255/255, 165/255, 0/255], 'FaceAlpha', 0.5, 'EdgeColor', 'none');
    %hold on;
    %fill([x, fliplr(x)], [combine_upper_bounds95, fliplr(combine_lower_bounds95)], [255/255, 165/255, 0/255], 'FaceAlpha', 0.2, 'EdgeColor', 'none');
    %hold on;
    %plot(test_ori, '-', 'lineWidth', 1, 'Color', [255/255, 0/255, 0/255])
    %hold on;
    %plot(test_pre(771:910), 'o-', 'lineWidth', 1, 'Color', [0/255, 0/255, 238/255])
    %hold on;
    % 添加图例和标签
    %legend('85%置信区间','90%置信区间','95%置信区间','实际值', '预测值');
    %xlabel('预测样本')
    %ylabel('预测结果')
    %string = {'测试集区间预测结果'};
    %title(string)
    %xlim([1, N])
    % 取消保持绘图区，以便之后的绘图不覆盖在当前图上
    %hold off;

end